const webpack = require("webpack");
//打包配置自动忽略console.log等
const TerserPlugin = require("terser-webpack-plugin");
// 配置链接 https://cli.vuejs.org/zh/config/
module.exports = {
  // 部署应用包时的基本 URL
  publicPath: process.env.NODE_ENV === "production" ? "" : "/",
  // 是否需要生产环境的 source map
  productionSourceMap: false,
  chainWebpack: (config) => {
    config.plugin("html").tap((args) => {
      // 设置网页标题
      args[0].title = "echarts-map";
      return args;
    });
    // 全局引用axios
    config.plugin("provide").use(webpack.ProvidePlugin, [
      {
        axios: "axios",
      },
    ]);
  },
  css: {
    loaderOptions: {
      // 引用并配置postcss-px2rem-exclude
      postcss: {
        plugins: [
          require("postcss-px2rem-exclude")({
            // 配置项，详见官方文档
            remUnit: 100,
            remPrecision: 2,
            exclude: /node_modules|folder_name/i,
          }), // 换算的基数
        ],
      },
      sass: {
        // 引用sass全局文件
        // 根据自己样式文件的位置调整
        prependData: `@import "@/assets/css/scss.scss";`,
      },
    },
  },
  configureWebpack: (config) => {
    if (process.env.NODE_ENV === "production") {
      return {
        plugins: [
          //打包环境去掉console.log
          new TerserPlugin({
            cache: true,
            sourceMap: false,
            // 多进程
            parallel: true,
            terserOptions: {
              ecma: undefined,
              warnings: false,
              parse: {},
              compress: {
                drop_console: true,
                drop_debugger: false,
                pure_funcs: ["console.log"], // 移除console
              },
            },
          }),
        ],
      };
    }
  },
};
